home *** CD-ROM | disk | FTP | other *** search
- /* Modified from original to fit into Acorn 310 */
- /*
- * Copyright 1986, 1987 Pat Joseph Monardo. All rights reserved.
- * Copying of this file is granted according to the provisions
- * specified in the file COPYING which must accompany this file.
- */
-
-
- /*
- * tex.h
- */
-
- #include <stdio.h>
- #include <signal.h>
- #include <time.h>
-
- /*
- * constants in the outer block
- */
-
- #define NUL '\0'
- #define EOLN '\n'
- #define FALSE 0
- #define TRUE 1
- #define EMPTY 0
-
- #define BUF_SIZE 5000
- #define DVI_BUF_SIZE 1024
- #define ERROR_LINE 78
- #define FILE_NAME_SIZE 104
- #define FONT_BASE 0
- #define FONT_MAX 100
- #define FONT_MEM_SIZE 25000
- #define HALF_BUF 512
- #define HALF_ERROR_LINE 39
- #define HASH_SIZE 3000
- #define HASH_PRIME 2551
- #define HYPH_SIZE 307
- #define MAX_IN_OPEN 15
- #define MAX_PRINT_LINE 78
- #define MAX_STRINGS 5400
- #define NEST_SIZE 40
- #define PARAM_SIZE 30
- #define POOL_SIZE 25000
- #define SAVE_SIZE 600
- #define STACK_SIZE 200
- #define STRING_VACANCIES 1000
- #define TRIE_OP_HASH_SIZE 512
- #define TRIE_SIZE 8000
-
- #ifdef INIT
-
- #ifdef BIG
- #define MEM_BOT 0
- #define MEM_TOP 27000
- #define TOK_BOT 0
- #define TOK_TOP 37000
- #define MEM_MIN MEM_BOT
- #define MEM_MAX MEM_TOP
- #define TOK_MIN TOK_BOT
- #define TOK_MAX TOK_TOP
- #define MIN_QUARTERWORD 0
- #define MAX_QUARTERWORD 255
- #define MIN_HALFWORD 0
- #define MAX_HALFWORD 655350
- #endif
-
- #ifdef BIGG
- #define MEM_BOT 0
- #define MEM_TOP 37000
- #define TOK_BOT 0
- #define TOK_TOP 47000
- #define MEM_MIN MEM_BOT
- #define MEM_MAX MEM_TOP
- #define TOK_MIN TOK_BOT
- #define TOK_MAX TOK_TOP
- #define MIN_QUARTERWORD 0
- #define MAX_QUARTERWORD 255
- #define MIN_HALFWORD 0
- #define MAX_HALFWORD 6553500
- #endif
-
- #else
-
- #ifdef BIG
- #define MEM_BOT 0
- #define MEM_TOP 27000
- #define TOK_BOT 0
- #define TOK_TOP 37000
- #define MEM_MIN 0
- #define MEM_MAX 128000
- #define TOK_MIN 0
- #define TOK_MAX 45000
- #define MIN_QUARTERWORD 0
- #define MAX_QUARTERWORD 255
- #define MIN_HALFWORD 0
- #define MAX_HALFWORD 655350
- #endif
-
- #ifdef BIGG
- #define MEM_BOT 0
- #define MEM_TOP 37000
- #define TOK_BOT 0
- #define TOK_TOP 47000
- #define MEM_MIN 0
- #define MEM_MAX 256000
- #define TOK_MIN 0
- #define TOK_MAX 65000
- #define MIN_QUARTERWORD 0
- #define MAX_QUARTERWORD 255
- #define MIN_HALFWORD 0
- #define MAX_HALFWORD 6553500
- #endif
-
- #endif
-
- /*
- * types in the outer block
- */
-
- #define global extern
-
- #define ascii unsigned char
- #define bool int
- #define byte unsigned char
- #define fnt int
- #define gord unsigned char
- #define gratio float
- #define group int
- #define ptr hword
- #define sc i
- #define scal long
- #define str hword
- #define val long
-
- typedef FILE *word_file;
- typedef FILE *alpha_file;
- typedef FILE *byte_file;
-
- #define qword unsigned char
-
- #define hword unsigned short /* unsigned long */
-
- typedef union {
- struct {
- hword rh;
- hword lh;
- } hh1;
- struct {
- hword rh;
- qword b0;
- qword b1;
- } hh2;
- } twoh;
-
- typedef struct {
- qword b0;
- qword b1;
- qword b2;
- qword b3;
- } fourq;
-
- typedef union {
- long i;
- gratio gr;
- twoh hh;
- fourq qqqq;
- } mword;
-
- /*
- * variables in the outer block
- */
-
- global char banner[];
- global int ready_already;
-
- /*
- * functions in the outer block
- */
-
- int final_cleanup();
- int close_files_and_terminate();
- int initialize();
- bool decode_args();
- int handle_int();
-
- /*
- * some common programming idioms
- */
-
- #define incr(i) ++(i)
- #define decr(i) --(i)
- #define odd(i) ((i) & 1)
- #define abs(i) ((i) >= 0 ? (i) : -(i))
- #define round(x) (long) ((x) > 0.0 ? ((x) + 0.5) : ((x) - 0.5))
- #define negate(x) (x) = -(x)
- #define loop while (1)
-